package cn.learn;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.LinkedHashSet;
import java.util.Set;

/**
 * 文件格式类型
 *
 * @author huangyezhan
 * @version 1.0
 * @date 2021年01月27日9:12
 */
@Getter
@AllArgsConstructor
public enum FileTypeEnum {

    /**
     * pdf
     */
    PDF("pdf", "PDF"),

    /**
     * word 文档
     */
    DOC("doc", "word"),
    DOCX("docx", "word"),

    /**
     * excel
     */
    XLSX("xlsx", "excel"),
    XLS("xls", "excel"),

    /**
     * 照片
     */
    JPEG("jpeg", "照片"),
    JPG("jpg", "照片"),
    PNG("png", "照片");


    /**
     * 格式
     */
    private final String typeValue;
    /**
     * 格式名称
     */
    private final String typeName;


    public static Set<String> toSet() {
        Set<String> set = new LinkedHashSet<>();
        for (FileTypeEnum value : FileTypeEnum.values()) {
            set.add(value.typeName);
        }
        return set;
    }

    /**
     * 匹配是否有该类型
     *
     * @param fileType 类型
     * @return 返回结果
     */
    public static boolean isMatchType(String fileType) {
        for (FileTypeEnum value : FileTypeEnum.values()) {
            if (value.getTypeValue().equalsIgnoreCase(fileType)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 根据类型格式，匹配名称
     *
     * @param fileType 文件类型
     * @return 返回结果
     */
    public static String getNameByType(String fileType) {
        for (FileTypeEnum value : FileTypeEnum.values()) {
            if (value.getTypeValue().equalsIgnoreCase(fileType)) {
                return value.getTypeName();
            }
        }
        return "";
    }
}
